/*
 * @Author: yuki
 * @Date: 2025-10-25 10:13:38
 * @LastEditTime: 2025-11-06 19:25:00
 * @Description: 文件的作用
 */
import { NestFactory, Reflector } from '@nestjs/core';

import { AppModule } from './app.module';
import { GlobalExceptionFilter } from './filter/globalException.filter';
import { JwtAuthGuard } from './guard/jwtAuth.guard';
import { ResponseInterceptor } from './interceptors/response.interceptor';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  // 全局守卫
  app.useGlobalGuards(new JwtAuthGuard(app.get(Reflector)));
  // 全局拦截器
  app.useGlobalInterceptors(new ResponseInterceptor());
  // 全局异常过滤器
  app.useGlobalFilters(new GlobalExceptionFilter());

  // 高级 CORS 配置
  app.enableCors({
    origin: '*', // 允许所有来源
    methods: ['GET', 'POST'],
    maxAge: 86400 // 预检请求（OPTIONS）的缓存时间（秒），避免频繁预检
  });

  await app.listen(process.env.PORT ?? 3000);
}

bootstrap();
